Overview
The EigenDA disperser provides an API for dispersing and retrieving blobs to and from the EigenDA network in an untrusted fashion. (Note: as part of its essential data availability guarantee, the EigenDA network already supports direct communication with the EigenDA network for blob retrieval; permissionless dispersal of blobs to the EigenDA network is planned as a future protocol upgrade).
The source of truth for the Disperser API spec is disperser.proto, adjusted to the current release. The goal of this document is to explain this spec at a higher level.
Eigen Labs hosts one disperser endpoint for each EigenDA network. These endpoints are documented in respective network pages for mainnet and Holesky.
The EigenDA Disperser exposes 4 endpoints:
DisperseBlob()
DisperseBlobAuthenticated()
GetBlobStatus()
RetrieveBlob()
These endpoints enable the blob lifecycle, from enqueuing blobs for dispersal to waiting for their dispersal finalization and finally to retrieving blobs from the EigenDA network. The following flowchart describes how move blobs through this lifecycle with respect to these endpoints:
The Disperser offers an asynchrounous API for dispersing blobs, where clients should poll the GetBlobStatus()
endpoint with the dispersal request ID they received from calling one of the two disperse endpoints until the disperser reports the blob as successfully dispersed and finalized.
Endpoints
Here we provide a narrative-level description of the major API endpoints. Please see the repo for detailed, field-level API documentation.
DisperseBlob()
This endpoint will be deprecated in future releases. All production traffic should prefer the DisperseBlobAuthenticated
endpoint.
The DisperseBlob()
is a simple unauthenticated endpoint which allows users to send test traffic to the EigenDA testnet and mainnet networks. Requests to the DisperseBlob()
endpoint are rate limited based on IP address.
Currently, all users can permissionlessly utilize the DisperseBlob
endpoint on testnet at free-tier throughput levels. Mainnet users can request IP-whitelisting via the EigenDA Client Registration Form, but should prefer the authenticated endpoint described in the next section.
The DisperseBlob()
endpoint accepts a DisperseBlobRequest and returns a DisperseBlobReply, as described below: